#include <iostream>

using namespace std;

struct ListNode {
	int val;
	ListNode* next;
	ListNode() : val(0), next(nullptr) {}
	ListNode(int x) : val(x), next(nullptr) {}
	ListNode(int x, ListNode* next) : val(x), next(next) {}
};

ListNode* swapPairs(ListNode* head) {
    if (head == nullptr || head->next == nullptr)
        return head;

    ListNode* node = swapPairs(head->next->next);
    ListNode* newhead = head->next;

    newhead->next = head;
    head->next = node;

    return newhead;
}

int main()
{

	return 0;
}